---
title: 视野
icon: Focus
---

Project Graph 内的舞台是一个无穷大的二维平面世界，您可以自由的移动，缩放视野，自由布局您的内容世界。

这与初中数学中的平面直角坐标系类似，但这里的y轴是向下的。

```
           │
           │
           │
        ┌───────────┐
────────│──┼────────│─────► x
        │  │  O     │
        │  │        │
        └───────────┘
           │
           │
           ▼
           y
```

上图中，矩形中心 `O` 为摄像机位置，矩形为摄像机产生的视野区域

## 移动

1. 【2D游戏操作习惯】：按下 `W` `A` `S` `D` 键移动视野画面（可在设置中禁用，或直接按下Pause键禁用或解除）
2. 【PhotoShop操作习惯】：空格键持续按下 + 鼠标左键拖拽
3. 【画布类软件操作习惯】：鼠标中键按下拖拽
4. 【画布类软件操作习惯】：鼠标右键拖拽空白处移动（需要在设置中开启）
5. 【通用软件翻页逻辑】：`PageUp` `PageDown` `Home` `End` 翻页
6. 【Figma白板操作习惯】：`Ctrl` + 鼠标滚轮 上下移动（可在设置中更改）
7. 【Figma白板操作习惯】：`Shift` + 鼠标滚轮 左右移动（可在设置中更改）
8. 【笔记本电脑数位板】：双指移动（macOS体验更佳、windows方向容易被垂直化，建议起手斜向移动）
9. 【实验功能】：大拇指滚轮滚动，视野向鼠标位置到中心十字准星的连线方向移动或远离

可以引起移动的特性

1. 【手动重置视野】：按 `F` 键将视野范围覆盖全部内容，选定目标内容后再按 `F` 键，将视野覆盖目标内容的外接矩形
2. 【标签】：给对象添加标签，点击标签面板的内容，视野移动到指定位置
3. 【以鼠标为中心缩放视野】：在设置中开启以鼠标为中心缩放视野时，可以先缩小屏幕一角落，再放大屏幕另一对角角落，可以实现移动视野的效果。

## 缩放

1. 鼠标滚轮缩放视野画面
2. 菜单栏有重置缩放
3. 触摸板双指缩放（仅在macOS能触发）

```
           │
    ┌───────────────────┐
    │ ┌───────────────┐ │
    │ │ ┌───────────┐ │ │
────│─│─│──┼────────│─│─│─► x
    │ │ │  │  O     │ │ │
    │ │ │  │        │ │ │
    │ │ └───────────┘ │ │
    │ └───────────────┘ │
    └───────────────────┘
           ▼
           y
```

实际缩放视野时，时摄像机的视野范围（上图中的矩形覆盖范围区域）在发生改变，舞台上的实际内容不会发生任何改变。

细节：

1. 画面缩放过大时（观看微观）会回到宏观状态
2. 设置中可以调整缩放的动画速度，默认是有缓动效果的，如果头晕可以把动画速度调到最快即可取消过渡

## 自动调整视野（移动+缩放）

双击鼠标中键，会根据选中内容自动调整视野，确保所有选中内容的外接矩形都在视野中，并留有一定边距 （在设置中可以调整这个边距倍数）

若没有选中内容，则会将所有舞台上的内容的外接矩形 都纳入到视野中，并留有一定边距

除了双击鼠标中键之外，还可以通过默认快捷键 `F` 来触发自动调整视野功能，此快捷键可自定义更改

## 视野移动和标签节点的配合

选中一个节点，可以将其添加到标签，添加到标签后，该节点会有一个红色三角形标志。

在顶部栏的标签面板中可以看到所有添加标签的节点，点击即可跳转。

点击后，视野会对准该节点**及其所有后继节点群**的整体外接矩形，并自动调整视野。

这样，您可以快速了解当前世界中有什么主要内容，并快速移动到感兴趣的节点。方便在做演讲或者授课。

## 更多问题

### 我担心自己迷路了怎么办？

可以在 `设置 显示` 中开启坐标轴显示和网格显示，能实时确认自己在整个舞台的位置。

也可以随手触发“自动调整视野”的操作，能快速回到内容中心。此功能的默认快捷键是 `F` 。

### 我的视野在一直不停的朝着某个方向移动，怎么办？

可能是 `w s a d` 的松开没有被监听到导致的，可以按下 `Pause` 键强制“刹车”。

> 按s向下移动的过程可以分为两个阶段：
>
> 1. 按下s键，摄像机开始具有向下移动的动力
> 2. 松开s键，摄像机关闭了向下移动的动力，但由于摄像机的惯性，会慢慢回到原地
> 
> 所以，如果你什么都没有按着，但发现视野一直在向下移动，那么可以触发一下过程2，按一下 `s` 键，让摄像机停下来。
> 
> 其他方向同理，如果你发现视野一直朝着某个方向移动，就再按一下对应的方向键就可以了。


### 为什么我感觉软件默认的 `w s a d` 移动视野方式反了，非常反直觉？

可能是因为窗口透明化了，也没有开启坐标轴和中心十字准星。

视觉自然以舞台上的节点内容为基准了，这个时候按下 w 会发现内容没有往上移动，而是往下移动。

可以在设置中开启移动反向。

或者关闭窗口透明，就感觉正常了。

### 我不想使用 `w s a d` 移动视野，怎么办？

可以在设置中禁用 `WASD` 键移动视野的功能。

## 更深度的问题

### 为什么鼠标滚轮默认是缩放视野，而不是文档一样的上下平移？

因为这个软件最开始是从游戏引擎的视角设计的，2D俯视图类型的即时策略游戏RTS，鼠标滚轮缩放视野是常用的操作。

用于给玩家一种非常快速低成本的从宏观视角到微观视角的切换，既能快速统筹大局，又能快速调整局部细节。

在软件中，这种操作配合大型框的Section在宏观视野的情况下出现超大字的标题，可以帮助用户快速看到整体的布局。

Section框也是软件的特色对象之一，我们发现在节点树旁大时，Section框的树形嵌套关系的表达比节点树更加直观。Section框的嵌套所表达出的逻辑树形结构不仅包含了树形结构本身的嵌套关系，每一层嵌套内部的元素还能包含上下左右等位置关系，非常丰富直观。

### 为什么世界不设计成一个三维空间呢？

人在系统性思考时，习惯于上帝视角看待一切，就像看地图一样。人类的古老祖先也习惯于在墙壁上写写画画。

三维空间往往需要太多操作，比较麻烦。

### 为什么世界不设计成一个只有一个方向的空间（一维空间）呢？

无法支持思维导图必备的树状结构（层级关系）和网状结构（关联关系）、以及复杂的框嵌套关系。

### 为什么要让人自由布局？

我们认为提供更高的布局自由度可以更好的发挥人类的主观能动性。

例如在按照重要性和时间紧急程度排序，可以把重要的事情放上面，次要的放下面，紧急的靠右放，不紧急的靠左放。

再例如通常人的潜意识中向右代表事物发展的方向、时间等信息，上下可能代表等级、权威、地位等隐含信息。

> 摆放位置的过程，也是记忆的过程，这个软件其实更适合具有空间思维的人。
> 
> 如果你发现自己从小就对空间位置、形状图形的记忆非常敏感，那么恭喜你，这个软件可能很适合你。

### 能否将世界改成一个没有边界但面积有限的空间呢？

类似地球，没有边界但面积有限，超一个方向走会回到原点。

可以在1.8及其以下版本中，在设置中找到实验性功能：开启循环空间。

目前还存在缺点，本质上是用一个九宫格渲染模式来模拟了循环空间，将摄像机限制在一个矩形区域内移动，到达左侧边缘时会立刻跳转到右侧边缘。

并将这个矩形区域的渲染内容复制，分别在周围八个相邻矩形区域内渲染，造成一个看似视觉上无限的世界。

不建议使用此功能，因为打开其他人分享的内容时可能会导致看不到内容。

在2.0版本中，此功能由于导致代码结构复杂难以维护，且很少有用户使用而被砍掉了。